Model হলো CodeIgniter এর একটি গুরুত্বপূর্ণ উপাদান, যা ডাটাবেস সংক্রান্ত কাজ পরিচালনা করে। এটি MVC (Model-View-Controller) আর্কিটেকচারের অংশ, যেখানে Model ডাটাবেস থেকে ডেটা রিট্রিভ, ইনসার্ট, আপডেট এবং ডিলিট করার দায়িত্ব পালন করে।
CodeIgniter Model তৈরি
CodeIgniter-এ একটি Model তৈরি করতে আপনাকে app/Models/ ডিরেক্টরিতে একটি ক্লাস তৈরি করতে হবে।
Model ক্লাস তৈরি
app/Models/ফোল্ডারে একটি নতুন PHP ফাইল তৈরি করুন। উদাহরণ:ProductModel.phpModel ক্লাস কোড:
<?php namespace App\Models; use CodeIgniter\Model; class ProductModel extends Model { protected $table = 'products'; // ডাটাবেসের টেবিলের নাম protected $primaryKey = 'id'; // প্রাইমারি কি // টেবিলের ফিল্ড যা ইনসার্ট/আপডেট করার সময় ব্যবহার করা যাবে protected $allowedFields = ['name', 'price', 'description']; // স্বয়ংক্রিয়ভাবে created_at এবং updated_at ফিল্ড আপডেট protected $useTimestamps = true; }
বিস্তারিত:
protected $table: Model কোন টেবিলের সাথে কাজ করবে তা উল্লেখ করে।protected $primaryKey: প্রাইমারি কি নির্ধারণ করে।protected $allowedFields: ফিল্ড নির্ধারণ করে, যা ইনসার্ট বা আপডেট করার জন্য অনুমোদিত।protected $useTimestamps: যদি টেবিলেcreated_atএবংupdated_atফিল্ড থাকে, তাহলে এদের স্বয়ংক্রিয়ভাবে আপডেট করে।
Model ব্যবহার
Controller এ Model লোড করা
Controller থেকে Model ব্যবহার করার জন্য:
Controller এ Model ইনস্ট্যান্স তৈরি করুন:
$productModel = new \App\Models\ProductModel();
ডাটাবেস অপারেশন
১. ডেটা রিট্রিভ (Retrieve Data)
public function getAllProducts() {
$productModel = new \App\Models\ProductModel();
$products = $productModel->findAll(); // সমস্ত ডেটা রিট্রিভ করে
return json_encode($products);
}
২. নির্দিষ্ট ডেটা রিট্রিভ
public function getProduct($id) {
$productModel = new \App\Models\ProductModel();
$product = $productModel->find($id); // নির্দিষ্ট ID এর ডেটা রিট্রিভ করে
return json_encode($product);
}
৩. ডেটা ইনসার্ট (Insert Data)
public function addProduct() {
$productModel = new \App\Models\ProductModel();
$data = [
'name' => 'Sample Product',
'price' => 100,
'description' => 'This is a sample product'
];
$productModel->save($data); // নতুন ডেটা ইনসার্ট করে
echo "Product added successfully!";
}
৪. ডেটা আপডেট (Update Data)
public function updateProduct($id) {
$productModel = new \App\Models\ProductModel();
$data = [
'id' => $id,
'price' => 120,
'description' => 'Updated product description'
];
$productModel->save($data); // নির্দিষ্ট ডেটা আপডেট করে
echo "Product updated successfully!";
}
৫. ডেটা ডিলিট (Delete Data)
public function deleteProduct($id) {
$productModel = new \App\Models\ProductModel();
$productModel->delete($id); // নির্দিষ্ট ডেটা ডিলিট করে
echo "Product deleted successfully!";
}
Query বিল্ডার ব্যবহার
CodeIgniter এর Model ক্লাসে বিল্ট-ইন Query Builder আছে, যা ডাটাবেস অপারেশন সহজ করে।
কাস্টম কোয়েরি ব্যবহার
public function getProductsByPrice($price) {
$productModel = new \App\Models\ProductModel();
$products = $productModel->where('price >', $price)->findAll();
return json_encode($products);
}
নির্দিষ্ট কলাম নির্বাচন
public function getProductNames() {
$productModel = new \App\Models\ProductModel();
$names = $productModel->select('name')->findAll();
return json_encode($names);
}
Model এর সেরা প্র্যাকটিস
- Model ক্লাস পরিষ্কার রাখুন: শুধু ডাটাবেস সংক্রান্ত কাজ রাখুন, অতিরিক্ত লজিক যুক্ত করবেন না।
- Query Builder ব্যবহার করুন: SQL কোড ম্যানুয়ালি লিখার পরিবর্তে CodeIgniter এর Query Builder ব্যবহার করুন।
- Validation ব্যবহার করুন: ডাটা ইনসার্ট বা আপডেট করার সময় Model এর ভ্যালিডেশন ফিচার ব্যবহার করুন।
- Timestamps নিশ্চিত করুন:
created_atএবংupdated_atফিল্ডগুলো স্বয়ংক্রিয়ভাবে ব্যবহারের জন্য$useTimestamps = trueব্যবহার করুন।
Model এর মাধ্যমে ডাটাবেস সংক্রান্ত কাজগুলোকে সহজ, পরিষ্কার এবং সংগঠিতভাবে পরিচালনা করা যায়। এটি CodeIgniter এর ডেভেলপমেন্টে একটি অপরিহার্য অংশ।
Read more